﻿using System.Collections.Generic;

namespace Agile.Redsys.Repositories
{
    public interface IRepository<T> : IEnumerable<T>
    {
        /// <summary>
        /// Gets the specified item.
        /// </summary>
        /// <param name="identifier">The identifier.</param>
        void Get(object identifier);

        /// <summary>
        /// Saves the specified item.
        /// </summary>
        /// <param name="item">The item.</param>
        /// 
        void Save(T item);
        /// <summary>
        /// Updates the specified item.
        /// </summary>
        /// <param name="item">The item.</param>
        void Update(T item);

        /// <summary>
        /// Deletes the specified item.
        /// </summary>
        /// <param name="item">The item.</param>
        void Delete(T item);
    }
}
